import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import eslintPlugin from 'vite-plugin-eslint'
import { fileURLToPath, URL } from 'node:url'
export default defineConfig(({ mode }) => {
  const config = loadEnv(mode, './')
  return {
    base: './',
    plugins: [
      vue(),
      eslintPlugin({
        include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.ts', 'src/*.vue'],
      }),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url)),
      },
    },

    server: {
      // 是否开启 https
      https: false,
      // 端口号
      port: 3000,
      // 监听所有地址
      host: '0.0.0.0',
      // 服务启动时是否自动打开浏览器
      open: true,
      // 允许跨域
      cors: true,
      // 自定义代理规则
      proxy: {
        '/api/': {
          target: config.VITE_TARGET,
          changeOrigin: true,
          rewrite: (p) => p.replace(/^\/api/, ''),
        },
        '/chn-energy-office/': {
          target: 'http://10.1.6.15:10240/chn-energy-office/',
          changeOrigin: true,
          rewrite: (p) => p.replace(/^\/chn-energy-office/, ''),
        },
      },
    },
    build: {
      // 设置最终构建的浏览器兼容目标
      target: 'es2015',
      // 构建后是否生成 source map 文件
      sourcemap: false,
      //  chunk 大小警告的限制（以 kbs 为单位）
      chunkSizeWarningLimit: 2000,
      // 启用/禁用 gzip 压缩大小报告
      reportCompressedSize: false,
    },
    css: {
      preprocessorOptions: {
        less: {
          additionalData: `
            @import (reference) './node_modules/@arco-themes/vue-zczw-admin/tokens.less';
						@import (reference) "./src/style/variable.less";
						@import (reference) "./src/style/global.less";
          `, // 此处全局的less文件
        },
      },
    },
    esbuild: { charset: 'ascii' },
  }
})
